pub fn merge(nums1: &mut Vec<i32>, m: i32, nums2: &mut Vec<i32>, n: i32) {
    let mut p1: usize = m as usize;
    let mut p2: usize = n as usize;

    let mut i: usize = (m + n) as usize;

    loop {
        if i == 0 {
            break;
        }
        if p2 == 0 {
            nums1[i - 1] = nums1[p1 - 1];
            p1 -= 1;
        } else if p1 == 0 {
            nums1[i - 1] = nums2[p2 - 1];
            p2 -= 1;
        } else if nums1[p1 - 1] >= nums2[p2 - 1] {
            nums1[i - 1] = nums1[p1 - 1];
            p1 -= 1;
        } else if nums2[p2 - 1] >= nums1[p1 - 1] {
            nums1[i - 1] = nums2[p2 - 1];
            p2 -= 1;
        }
        i -= 1;
    }
}
